from tortoise import models, fields


class User(models.Model):
    id = fields.IntField(pk=True)  # 主键字段，数据库会自动设置自动增长
    username = fields.CharField(max_length=255)  # 用户名，最长255字符
    password = fields.CharField(max_length=255)  # 密码，最长255字符
    nickname = fields.CharField(max_length=255)  # 昵称，最长255字符
    img = fields.CharField(max_length=255, null=True)  # 用户头像URL，最长255字符，可为空

    class Meta:
        table = "user"  # 数据库中的表名


class Post(models.Model):
    title = fields.CharField(max_length=255)  # 帖子标题，最长255字符
    content = fields.CharField(max_length=255)  # 帖子内容，最长255字符
    store_name = fields.CharField(max_length=255)  # 商店名称，最长255字符
    like = fields.IntField(default=0)  # 点赞数，默认0
    user = fields.ForeignKeyField('models.User', related_name='posts', on_delete=fields.CASCADE)  # 外键，指向用户

    class Meta:
        table = "posts"  # 数据库中的表名


class Favorite(models.Model):
    user_id = fields.IntField(null=True)  # 用户ID，可为空
    post_id = fields.IntField(null=True)  # 帖子ID，可为空

    class Meta:
        table = "favorites"  # 数据库中的表名


class Like(models.Model):
    id = fields.IntField(pk=True)  # 主键字段，数据库会自动设置自动增长
    user_id = fields.IntField(null=True)  # 用户ID，可为空
    post_id = fields.IntField(null=True)  # 帖子ID，可为空

    class Meta:
        table = "like"  # 数据库中的表名


class Store(models.Model):
    id = fields.IntField(pk=True)  # 主键字段，数据库会自动设置自动增长
    index = fields.CharField(max_length=255, null=True)  # 索引，可为空
    num = fields.CharField(max_length=255, null=True)  # 编号，可为空
    name = fields.CharField(max_length=255, null=True)  # 名称，可为空
    sheng = fields.CharField(max_length=255, null=True)  # 省份，可为空
    shi = fields.CharField(max_length=255, null=True)  # 市区，可为空
    store = fields.CharField(max_length=255, null=True)  # 商店名，可为空
    img = fields.CharField(max_length=255, null=True)  # 图片URL，可为空
    location = fields.CharField(max_length=255, null=True)  # 位置，可为空
    contact = fields.CharField(max_length=255, null=True)  # 联系方式，可为空
    businessHours = fields.CharField(max_length=255, null=True)  # 营业时间，可为空

    class Meta:
        table = "store"  # 数据库中的表名


class Art(models.Model):
    id = fields.IntField(pk=True)  # 主键字段，数据库会自动设置自动增长
    index = fields.CharField(max_length=255, null=True)  # 索引，可为空
    num = fields.CharField(max_length=255, null=True)  # 编号，可为空
    name = fields.CharField(max_length=255, null=True)  # 名称，可为空
    sheng = fields.CharField(max_length=255, null=True)  # 省份，可为空
    shi = fields.CharField(max_length=255, null=True)  # 市区，可为空
    type = fields.CharField(max_length=255, null=True)  # 类型，可为空
    introduce = fields.TextField(null=True)  # 介绍，可为空

    class Meta:
        table = "art"  # 数据库中的表名
